﻿create or replace function public.modificar_empresa
(
    IN xid_empresa numeric,
	IN xnum_adherente varchar,
	IN xnombre varchar,
	IN xcod_cartera varchar,
	IN xnom_experto varchar,
	IN xrazon_social varchar,
	IN xano_de_adhesion timestamp,
	IN xsegmentacion varchar,
	IN xholding varchar,
	IN xestrategica varchar,
	IN xsituacion varchar,
	IN xmulti_region varchar,
	IN xcasa_matriz varchar,
	IN xnum_centros_trabajo varchar,
	IN xmasa_sum_metropolitana varchar,
	IN xmasa_sum_nacional varchar,
    IN xplanes_de_cuenta varchar,
    IN xplanes_de_trabajo varchar,
    IN xfirma_de_planes varchar,
    IN xsistema_de_gestion varchar,
    IN xetapa_sistema_gestion varchar,
	IN xfirma_protocolo timestamp,
    IN xnum_cphs varchar,
    IN xnum_cphs_certificado varchar,
    IN xnum_cphs_bronce varchar,
    IN xnum_cphs_plata varchar,
    IN xnum_cphs_oro varchar,
    IN xprexor varchar ,
    IN xprexor_etapa varchar,
    IN xprexor_texto varchar,
    IN xplanesi varchar,
    IN xplanesi_etapa varchar,
    IN xplanesi_texto varchar,
	IN xasbesto varchar,
    IN xasbesto_etapa varchar,
    IN xasbesto_texto varchar,
    IN xhipobaria varchar,
    IN xhipobaria_etapa varchar,
    IN xhipobaria_texto varchar,
    IN xradiaciones varchar,
    IN xradiaciones_etapa varchar,
    IN xradiaciones_texto varchar,
    IN xasma varchar,
    IN xasma_etapa varchar,
    IN xasma_texto varchar,
    IN xsolventes varchar,
    IN xsolventes_etapa varchar,
    IN xsolventes_texto varchar,
	IN xmetales varchar,
    IN xmetales_etapa varchar,
    IN xmetales_texto varchar,
    IN xoxido varchar,
    IN xoxido_etapa varchar,
    IN xoxido_texto varchar,
    IN xplaguicida varchar,
    IN xplaguicida_etapa varchar,
    IN xplaguicida_texto varchar,
    IN xpsicosociales varchar,
    IN xpsicosociales_etapa varchar,
    IN xpsicosociales_texto varchar,
    IN xmmc varchar,
    IN xmmc_etapa varchar,
    IN xmmc_texto varchar,
    IN xtmert varchar,
    IN xtmert_etapa varchar,
    IN xtmert_texto varchar,
    IN xradiacion_uv varchar,
    IN xradiacion_uv_etapa varchar,
    IN xradiacion_uv_texto varchar,
    IN xultima_visita_experto timestamp,
    IN xultima_visita_director timestamp,
    IN xultima_visita_gtte timestamp,
    IN xultima_visita_alta_gerencia timestamp,
    IN xreporte_visita varchar,
    IN xriesgo_de_fuga varchar,
    IN xreclamo_ultimo_periodo timestamp,
    IN xparticipacion_mesa_trabajo varchar,
	OUT numerror varchar,
	OUT msjerror varchar
) returns record as

$body$

    begin
        numerror := 0;
        msjerror := '';

        update 
            empresa
        set 
			num_adherente=xnum_adherente,
			nombre=xnombre,
			cod_cartera=xcod_cartera,
			nom_experto=xnom_experto,
			razon_social=xrazon_social,
			ano_de_adhesion=xano_de_adhesion,
			segmentacion=xsegmentacion,
			holding=xholding,
			estrategica=xestrategica,
			situacion=xsituacion,
			multi_region=xmulti_region,
			casa_matriz=xcasa_matriz,
			num_centros_trabajo=xnum_centros_trabajo,
			masa_sum_metropilitana=xmasa_sum_metropolitana ,
			masa_sum_nacional=xmasa_sum_nacional ,
			planes_de_cuenta=xplanes_de_cuenta ,
			planes_de_trabajo=xplanes_de_trabajo,
			firma_de_planes=xfirma_de_planes,
			sistema_de_gestion=xsistema_de_gestion,
			etapa_sistema_gestion=xetapa_sistema_gestion,
			firma_protocolo=xfirma_protocolo,			
			num_cphs=xnum_cphs,
			num_cphs_certificado=xnum_cphs_certificado ,
			num_cphs_bronce=xnum_cphs_bronce,
			num_cphs_plata=xnum_cphs_plata,
			num_cphs_oro=xnum_cphs_oro,
			prexor=xprexor,
			prexor_etapa=xprexor_etapa,
			prexor_texto=xprexor_texto,
			planesi=xplanesi,
			planesi_etapa=xplanesi_etapa,
			planesi_texto=xplanesi_texto,
			asbesto=xasbesto,
			asbesto_etapa=xasbesto_etapa,
			asbesto_texto=xasbesto_texto,
			hipobaria=xhipobaria,
			hipobaria_etapa=xhipobaria_etapa,
			hipobaria_texto=xhipobaria_texto,
			radiaciones=xradiaciones,
			radiaciones_etapa=xradiaciones_etapa ,
			radiaciones_texto=xradiaciones_texto,
			asma=xasma,
			asma_etapa=xasma_etapa,
			asma_texto=xasma_texto,
			metales=xmetales,
			metales_etapa=xmetales_etapa,
			metales_texto=xmetales_texto,
			solventes=xsolventes,
			solventes_etapa=xsolventes_etapa,
			solventes_texto=xsolventes_texto,
			oxido=xoxido,
			oxido_etapa=xoxido_etapa,
			oxido_texto=xoxido_texto,
			plaguicida=xplaguicida,
			plaguicida_etapa=xplaguicida_etapa,
			plaguicida_texto=xplaguicida_texto,
			psicosociales=xpsicosociales,
			psicosociales_etapa=xpsicosociales_etapa,
			psicosociales_texto=xpsicosociales_texto,
			mmc=xmmc,
			mmc_etapa=xmmc_etapa,
			mmc_texto=xmmc_texto ,
			tmert=xtmert,
			tmert_etapa=xtmert_etapa ,
			tmert_texto=xtmert_texto,
			radiacion_uv=xradiacion_uv,
			radiacion_uv_etapa=xradiacion_uv_etapa,
			radiacion_uv_texto=xradiacion_uv_texto,
			ultima_visita_experto=xultima_visita_experto,
			ultima_visita_director=xultima_visita_director,
			ultima_visita_gtte=xultima_visita_gtte,
			ultima_visita_alta_gerencia=xultima_visita_alta_gerencia,
			reporte_visita=xreporte_visita,
			riesgo_de_fuga=xriesgo_de_fuga ,
			reclamo_ultimo_periodo=xreclamo_ultimo_periodo,
			participacion_mesa_trabajo=xparticipacion_mesa_trabajo

        where
            id_empresa = xid_empresa;

        exception
            when others then
                numerror := sqlstate;
                msjerror := '[modificar_empresa] error al modificar empresa(sql) ' ||sqlerrm;
                return; 
    end;
$body$
language 'plpgsql'